package com.easonji.admin.service;

import com.easonji.admin.form.UserForm;
import com.easonji.admin.query.UserQuery;

/**
 * @ClassName: UserService
 * @Description: 用户服务接口
 * @Author: LiuJun
 * @date: 2018/07/30 14:05:38
 * @Version: 1.0
 * @Copyright: Copyright (c) 2018 - 2019
 */
public interface UserService {

    /**
     * 查询用户列表
     * 
     * @param userQuery
     *            用户列表查询条件
     * @return 用户列表
     */
    Object queryUserList(UserQuery userQuery);

    /**
     * 根据用户ID，查询用户信息
     * 
     * @param userId
     *            用户ID
     * @return 用户信息
     */
    Object queryUser(Integer userId);

    /**
     * 添加用户
     * 
     * @param userForm
     *            用户表单
     * @return 添加结果
     */
    Integer saveUser(UserForm userForm);

    /**
     * 更新用户
     * 
     * @param userForm
     *            用户表单
     * @return 更新结果
     */
    Integer updateUser(UserForm userForm);

    /**
     * 更新用户状态
     * 
     * @param userId
     *            用户ID
     * @param status
     *            用户状态
     * @return 更新结果
     */
    Boolean updateUserStatus(Integer userId, Integer status);

    /**
     * 根据用户ID验证旧密码是否正确
     * 
     * @param userId
     *            用户ID
     * @param oldPwd
     *            旧密码
     * @return 验证结果
     */
    Boolean checkOldPwd(Integer userId, String oldPwd);

    /**
     * 用户密码更新
     * 
     * @param userId
     *            用户ID
     * @param pwd
     *            密码
     * @return 更新结果
     */
    Integer updateUserPwd(Integer userId, String pwd);

    /**
     * 用户角色更新
     * 
     * @param userId
     *            用户ID
     * @param roleIds
     *            所有角色ID
     * @return 更新结果
     */
    Integer updateUserRole(Integer userId, String roleIds);

    /**
     * 用户应用更新
     * 
     * @param userId
     *            用户ID
     * @param appIds
     *            所有应用ID
     * @return 更新结果
     */
    Integer updateUserApp(Integer userId, String appIds);

    /**
     * 用户下拉框数据
     * @return
     */
    Object queryComboList();
}
